Many modern wireless and other communication systems encode digital data for transmission over communication paths. For example, various communication systems map data bits into symbols, where the symbols define different locations within a constellation. A single symbol represents multiple data bits, and larger numbers of bits per symbol result in larger constellation sizes. A receiver that receives the transmitted symbols over a communication path uses knowledge of the constellation to convert the received symbols back into data bits. The overall efficiency of a coding technique is often important in meeting speed or throughput requirements for communications. Unfortunately, conventional coding techniques typically have overall coding efficiencies that unnecessarily limit the speed or throughput of communications.